package com.hcy.app

import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.hcy.app.screen.cipher.CryptUtilForAes
import com.hcy.app.screen.cipher.CryptUtilsForSm4

import org.junit.Test
import org.junit.runner.RunWith

import org.junit.Assert.*

/**
 * Instrumented test, which will execute on an Android device.
 *
 * See [testing documentation](http://d.android.com/tools/testing).
 */
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
    @Test
    fun useAppContext() {
        // Context of the app under test.
        val appContext = InstrumentationRegistry.getInstrumentation().targetContext
        assertEquals("com.hcy.app", appContext.packageName)
    }

    @Test
    fun testBook(){
        val  secretStr = "何重洋的密钥"
        val message = "麒麟客户端 先通过 何佳琪、刘恒泰、成洋 确认，他们确认采集信息没问题 就进入渗透测试环节。。。。。。\n" +
                "完善测试环境下的功能细节，例如前端js、剪切板、焦点问题、声音测试、多用户会话等。这些问题解决完后开始 嵌入 Android"
        println("明文：${message}")


    }

    @Test
    fun testCrypt(){
        // 2. SM4对称加密示例
        println("\n2. SM4对称加密示例:")
        val sm4Key = CryptUtilsForSm4.generateKeyString()
        val sm4IV = CryptUtilsForSm4.generateIVString()
        val plaintext = "这是一段需要加密的敏感数据"
        println( "sm4Key:${sm4Key}" )
        println( "sm4IV:${sm4IV}" )

        val ciphertext = CryptUtilsForSm4.encryptCBC(plaintext, sm4Key, sm4IV)
        println("明文: $plaintext")
        println("SM4加密后: $ciphertext")

        val decrypted = CryptUtilsForSm4.decryptCBC(ciphertext, sm4Key, sm4IV)
        println("SM4解密后: $decrypted")
        println("加解密验证: ${plaintext == decrypted}")

        println("=======================================================")

        val ecbText = CryptUtilsForSm4.encryptECB(plaintext,sm4Key)
        println("SM4加密后: $ecbText")
        val reecbText = CryptUtilsForSm4.decryptECB(ecbText,sm4Key)
        println("明文: $reecbText")


    }

    @Test
    fun testSm(){
        println("=== Kotlin国密算法使用示例 ===")

    }



}